package org.lanyu.springainovel.novel.service;

import org.lanyu.springainovel.novel.entity.Book;
import org.lanyu.springainovel.chat.vo.ImagePromptVO;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 书籍服务接口
 */
public interface BookService extends IService<Book> {
    
    /**
     * 根据用户ID获取书籍列表
     * 
     * @param userId 用户ID
     * @return 书籍列表
     */
    List<Book> getBooksByUserId(Long userId);
    
    /**
     * 创建书籍
     * 
     * @param book 书籍信息
     * @return 创建的书籍
     */
    Book createBook(Book book);
    
    /**
     * 更新书籍信息
     * 
     * @param book 书籍信息
     * @return 更新后的书籍
     */
    Book updateBook(Book book);
    
    /**
     * 根据ID获取书籍
     * 
     * @param id 书籍ID
     * @return 书籍信息
     */
    Book getBookById(Long id);

    /**
     * 删除书籍
     *
     * @param id 书籍ID
     * @return 是否删除成功
     */
    boolean removeById(Long id);
    
    /**
     * 保存图片到本地
     * 
     * @param imageUrl 图片URL
     * @param bookId 书籍ID
     * @return 本地图片路径
     */
    String saveImageToLocal(String imageUrl, Long bookId);
    
    /**
     * 创建书籍封面
     * 
     * @param imagePromptVO 图片生成请求参数
     * @return 生成的图片URL
     */
    String createBookCover(ImagePromptVO imagePromptVO);
    
    /**
     * 删除书籍目录
     * 
     * @param bookId 书籍ID
     * @return 删除是否成功
     */
    boolean deleteBookDirectory(Long bookId);
    

}